<?php defined('SYSPATH') or die('No direct script access.') ;
/**
 * 管理员权限规则数据模型
 *
 * @author  Yellow.Chow <aultoale@gmail.com>
 * @version $Id: rule.php 1 2014-01-13 15:05:51Z zhouyl $
 * @license http://www.gnu.org/licenses/gpl-3.0.html    GPL 3
 */
class Model_Manager_Rule extends Model
{


    /**
     * 获取所有权限规则
     *
     * @param  int  $role_id
     * @return array
     */
    public function all($role_id)
    {
        $rows = DB::select()
            ->from('manager_rules')
            ->where('role_id', '=', $role_id)
            ->fetch_all();

        $rules = array();
        foreach ($rows as $row)
        {
            $rules[] = $row['priv_id'];
        }

        return $rules;
    }

    /**
     * 权限指派
     *
     * @param  int    $role_id
     * @param  array  $rules
     * @return bool
     */
    public function assign($role_id, array $rules)
    {
        // 删除旧的权限数据
        DB::delete('manager_rules')->where('role_id', '=', $role_id)->execute();

        // 写入新数据
        foreach ($rules as $priv_id)
        {
            if ($priv_id > 0)
            {
                $data = array(
                    'role_id' => $role_id,
                    'priv_id' => $priv_id,
                );
                DB::insert('manager_rules', $data)->execute();
            }
        }

        // 重新加载权限
        Manager::instance()->refresh();

        return TRUE;
    }

}